﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio.Clases_BL;
using Capa_Entidad;
using Capa_Negocio_Interface;
using Capa_Negocio_Facade;

public partial class Ventas_wfAdmisionPaciente : System.Web.UI.Page
{
    IFacadeRegistrarAdmision objFacadeAdmicion = new FacadeRegistrarAdmision();
    IFacadeRegistrarHistoriaPersonal FacadeHistoriaPersonal = null;
    private static string operacion = "";
    private static string vOperacion = "C";
    IFacadeRegistrarAtencion BL_RegistrarHistoriaSocial;
    private static String msg, titulo;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //CodPaciente = Request.QueryString["CodPaciente"].ToString();
            vOperacion = (String)Session["Operacion"];

            rdbvacuna.Items.Add("Si");
            rdbvacuna.Items.Add("No");
            rdbvacuna.SelectedIndex = 0;

            rdbpersonalidad.Items.Add("Adecuado");
            rdbpersonalidad.Items.Add("Inadecuado");
            rdbpersonalidad.SelectedIndex = 0;

            rdbHistorialSexo.Items.Add("Heterosexual");
            rdbHistorialSexo.Items.Add("Homosexual");
            rdbHistorialSexo.SelectedIndex = 0;

            rdbalergia.Items.Add("Si");
            rdbalergia.Items.Add("No");
            rdbalergia.SelectedIndex = 0;

            rdbTransfusiones.Items.Add("Si");
            rdbTransfusiones.Items.Add("No");
            rdbTransfusiones.SelectedIndex = 0;


            rdbdinamica.Items.Add("Adecuada");
            rdbdinamica.Items.Add("Inadecuada");
            rdbdinamica.SelectedIndex = 0;

            rdbantsang.Items.Add("Si");
            rdbantsang.Items.Add("No");
            rdbantsang.SelectedIndex = 0;

            rdbestrsoc.Items.Add("Alto");
            rdbestrsoc.Items.Add("Medio");
            rdbestrsoc.Items.Add("Bajo");
            rdbestrsoc.SelectedIndex = 0;

            
            if (vOperacion == "M")
            {

                Mostrar_Paciente((Int32)Session["IDPaciente"]);
                ObtenerDatos();
                getObtenerHistoriaSocial((Int32)Session["IDPaciente"]);
            }
            else if (vOperacion == "D")
            {
                btnAceptar.Visible = false;
                btnCancelar.Visible = false;
                Mostrar_Paciente((Int32)Session["IDPaciente"]);
            }

            else
            {
                limpiar();
            }
        }
    }

    void Mostrar_Paciente(Int32 IdPaciente)
    {
        clsPacienteBLcs BL_Paciente = new clsPacienteBLcs();
        var consulta = from P in objFacadeAdmicion.listarPacientes()
                       where P.PAC_ID_PACIENTE == IdPaciente
                       select P;
        foreach (var S in consulta)
        {
            txtApellidoPaterno.Text = S.PAC_APELLIDO_PATERNO;
            txtApellidoMaterno.Text = S.PAC_APELLIDO_MATERNO;
            txtNombres.Text =S.PAC_NOMBRES ;
            dtpfechaNac.Value=S.PAC_FECHA_NACIMIENTO;
            txtNroDocumento.Text=S.PAC_NRO_DOCUMENTO;
            txtTelefono.Text=S.PAC_TELEFONO;
            txtDireccion.Text=S.PAC_DIRECCION_DOMICILIO;
           // txtCodigo.Text=S.PAC_CODIGO_PACIENTE;
            txtNumero.Text=S.PAC_NRO_DOMICILIO;
            txtPiso.Text=S.PAC_PISO_DOMICILIO;
            txtManzana.Text=S.PAC_MANZANA_DOMICILIO;
            txtLote.Text=S.PAC_LOTE_DOMICILIO;
            txtSector.Text=S.PAC_SECTOR_DOMICILIO;
            txtEtapa.Text=S.PAC_ETAPA_DOMICILIO;
            txtObservacion.Text=S.PAC_OBSERVACION;
            txtNroSeguro.Text=S.PAC_NRO_SEGURO;
            cboSexo.SelectedItem= cboSexo.Items.FindByValue(Convert.ToString(  S.TIPS_ID_TIPO_SEXO));
            cboEstadoCivil.SelectedItem=cboEstadoCivil.Items.FindByValue(Convert.ToString(S.TEC_ID_TIPO_ESTADO_CIVIL));
            cboTipoDocumento.SelectedItem= cboTipoDocumento.Items.FindByValue(Convert.ToString(S.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD));
            cboTipoTrabajo.SelectedItem=cboTipoTrabajo.Items.FindByValue( Convert.ToString(S.GEN_ID_TIPO_TRABAJO));
            seEdad.Value=S.PAC_EDAD;
            sePeso.Value=S.PAC_PESO;
            seNuHijos.Value=S.PAC_HIJOS;
            cboTipoSangre.SelectedItem=cboTipoSangre.Items.FindByValue( Convert.ToString(S.GEN_TSAN_ID));
            dtpfechaUlt_Odontolgo.Value=S.PAC_FECHA_ULT_ODONTOLOGICA;
            dtpChequeoGeneral.Value=S.PAC_FECHA_ULT_CHEQUEO_GENERAL;
            cboAlergias.SelectedItem=cboAlergias.Items.FindByValue( Convert.ToString( S.GEN_ALER_ID));
            txtOtrasAlergias.Text=S.PAC_OTRAS_ALERGIAS;
            cboEnfermedades.SelectedItem= cboEnfermedades.Items.FindByValue(Convert.ToString(S.GEN_ENFER_ID));
            txtCorreo1.Text = S.PAC_CORREO1;
            txtCorreo2.Text = S.PAC_CORREO2;
            txtUrbanizacion.Text = S.PAC_URBANIZACION;
            dtpChequeoOculista.Value = S.PAC_FECHA_OCULISTA;
            dtpChequeoNutricionista.Value= S.PAC_FECHA_NUTRICIONISTA;
            sePresionDiastoles.Value = S.PAC_PRESION_DIASTOLICA;
            sePresionSistoles.Value = S.PAC_PRESION_SISTOLICA;
            txtOtrasEnfermedades.Text = S.PAC_ENFERMEDADES_NO_CURABLES;
        }
    }

    protected void ASPxButton1_Click(object sender, EventArgs e)
    {
        if (validarInsercion() == true)
        {
            FacadeHistoriaPersonal = new FacadeRegistrarHistoriaPersonal();
            BL_RegistrarHistoriaSocial = new FacadeRegistrarAtencion();
            clsPacienteBLcs BL_Paciente = new clsPacienteBLcs();
            ADM_PACIENTE Ent_Paciente = new ADM_PACIENTE();

            //validaciones

            seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;
            int codigopaciente = 0;
            if (vOperacion == "C")
            {
                var consulta = from P in objFacadeAdmicion.listarPacientes()
                               where P.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD == Convert.ToInt32(cboTipoDocumento.SelectedItem.Value) && P.PAC_NRO_DOCUMENTO == txtNroDocumento.Text
                               select P;
                if (consulta.Count() > 0)
                {
                    //Util.showmsg("Error: El Documento de Identidad Ya existe!!!", this.Page);
                    lblMensaje.Text = "Error: El Documento de Identidad Ya existe!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }

                Ent_Paciente.PAC_ID_PACIENTE = objFacadeAdmicion.UltimoNumero() + 1;//reeeplazar por metodo
                codigopaciente = objFacadeAdmicion.UltimoNumero() + 1;
            }
            else
            {
                Ent_Paciente.PAC_ID_PACIENTE = (Int32)Session["IDPaciente"];
                codigopaciente = (Int32)Session["IDPaciente"];
            }

            //Ent_Paciente.PAC_ID_PACIENTE = BL_Paciente.UltimoNumero()+1;//reeeplazar por metodo
            Ent_Paciente.PAC_APELLIDO_PATERNO = txtApellidoPaterno.Text;
            Ent_Paciente.PAC_APELLIDO_MATERNO = txtApellidoMaterno.Text;
            Ent_Paciente.PAC_NOMBRES = txtNombres.Text;
            Ent_Paciente.PAC_FECHA_NACIMIENTO = dtpfechaNac.Date;
            Ent_Paciente.PAC_NRO_DOCUMENTO = txtNroDocumento.Text;
            Ent_Paciente.PAC_TELEFONO = txtTelefono.Text;
            Ent_Paciente.PAC_DIRECCION_DOMICILIO = txtDireccion.Text;
            Ent_Paciente.PAC_CODIGO_PACIENTE = (BL_Paciente.UltimoNumero() + 1).ToString("000000");
            Ent_Paciente.PAC_NRO_DOMICILIO = txtNumero.Text;
            Ent_Paciente.PAC_PISO_DOMICILIO = txtPiso.Text;
            Ent_Paciente.PAC_MANZANA_DOMICILIO = txtManzana.Text;
            Ent_Paciente.PAC_LOTE_DOMICILIO = txtLote.Text;
            Ent_Paciente.PAC_URBANIZACION = txtUrbanizacion.Text;
            Ent_Paciente.PAC_SECTOR_DOMICILIO = txtSector.Text;
            Ent_Paciente.PAC_ETAPA_DOMICILIO = txtEtapa.Text;
            Ent_Paciente.PAC_OBSERVACION = txtObservacion.Text;
            Ent_Paciente.PAC_NRO_SEGURO = txtNroSeguro.Text;
            Ent_Paciente.TIPS_ID_TIPO_SEXO = Convert.ToInt32(cboSexo.SelectedItem.Value);
            Ent_Paciente.TEC_ID_TIPO_ESTADO_CIVIL = Convert.ToInt32(cboEstadoCivil.SelectedItem.Value);
            Ent_Paciente.TDI_ID_TIPO_DOCUMENTO_IDENTIDAD = Convert.ToInt32(cboTipoDocumento.SelectedItem.Value);
            Ent_Paciente.GEN_ID_TIPO_TRABAJO = Convert.ToInt32(cboTipoTrabajo.SelectedItem.Value);
            Ent_Paciente.PAC_EDAD = Convert.ToInt32(seEdad.Value);
            Ent_Paciente.PAC_PESO = Convert.ToInt32(sePeso.Value);
            Ent_Paciente.PAC_HIJOS = Convert.ToInt32(seNuHijos.Value);
            Ent_Paciente.GEN_TSAN_ID = Convert.ToInt32(cboTipoSangre.SelectedItem.Value);
            Ent_Paciente.PAC_FECHA_ULT_ODONTOLOGICA = dtpfechaUlt_Odontolgo.Date;
            Ent_Paciente.PAC_FECHA_ULT_CHEQUEO_GENERAL = dtpChequeoGeneral.Date;
            Ent_Paciente.GEN_ALER_ID = Convert.ToInt32(cboAlergias.SelectedItem.Value);
            Ent_Paciente.PAC_OTRAS_ALERGIAS = txtOtrasAlergias.Text;
            Ent_Paciente.GEN_ENFER_ID = Convert.ToInt32(cboEnfermedades.SelectedItem.Value);
            Ent_Paciente.PAC_CORREO1 = txtCorreo1.Text;
            Ent_Paciente.PAC_CORREO2 = txtCorreo2.Text;
            Ent_Paciente.PAC_URBANIZACION = txtUrbanizacion.Text;
            Ent_Paciente.PAC_FECHA_OCULISTA = dtpChequeoOculista.Date;
            Ent_Paciente.PAC_FECHA_NUTRICIONISTA = dtpChequeoNutricionista.Date;
            Ent_Paciente.PAC_PRESION_DIASTOLICA = Convert.ToInt32(sePresionDiastoles.Value);
            Ent_Paciente.PAC_PRESION_SISTOLICA = Convert.ToInt32(sePresionSistoles.Value);
            Ent_Paciente.PAC_ENFERMEDADES_NO_CURABLES = txtOtrasEnfermedades.Text;

            //Ent_Paciente.PAI_ID_PAIS_DOMICILIO 
            //Ent_Paciente.PAI_ID_PAIS_NACIMIENTO
            //Ent_Paciente.EMP_ID_EMPLEADO
            List<ATE_HISTORIA_PERSONAL> lista = new List<ATE_HISTORIA_PERSONAL>();
            lista = FacadeHistoriaPersonal.getHistoria(codigopaciente);
            if(lista.Count()==0){
                Grabar(Ent_Paciente.PAC_ID_PACIENTE);
            }else{
                Modificar();
            }

            List<ATE_HISTORIA_SOCIAL> listaSocial = new List<ATE_HISTORIA_SOCIAL>();
            listaSocial = BL_RegistrarHistoriaSocial.GetHistoriaSocial(codigopaciente);

            if (listaSocial.Count() == 0)
            {
                insertarHistoriaSocial(Ent_Paciente.PAC_ID_PACIENTE);
            }else{
                ModificarHistoriaSocial();
            }

            
            if (vOperacion == "C")
            {
                if (objFacadeAdmicion.InsertarPaciente(Ent_Paciente))
                {
                   
                    //Util.showmsg("Nuevo paciente agregado!!!", this.Page);
                    lblMensaje.Text = "Nuevo paciente agregado!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    limpiar();
                }
                else
                {
                    //Util.showmsg("Error: No se pudo registrar Paciente!!!", this.Page);
                    lblMensaje.Text = "Error: No se pudo registrar Paciente!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }
                //Response.Redirect("wfAdmisionPacienteListado.aspx", true);
            }
            else
            {
                if (objFacadeAdmicion.ModificarPaciente(Ent_Paciente))
                {
                    
                    //Util.showmsg("Se modifico datos de paciente", this.Page);
                    lblMensaje.Text = "Se modifico datos de paciente";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                    //DevExpress.Utils.WaitDialogForm();
                    Response.Redirect("wfAdmisionPacienteListado.aspx", true);
                }
                else
                {
                    //Util.showmsg("Error: No se pudo registrar Paciente!!!", this.Page);
                    lblMensaje.Text = "Error: No se pudo registrar Paciente!!!";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
                }
            }
        }             
    }
    protected void ASPxButton2_Click(object sender, EventArgs e)
    {
        Response.Redirect("wfAdmisionPacienteListado.aspx", true);
    }
    void limpiar()
    {
        txtApellidoPaterno.Text = "";
        txtApellidoMaterno.Text = "";
        txtNombres.Text = "";
        dtpfechaNac.Text="";
        txtNroDocumento.Text="";
        txtTelefono.Text="";
        txtDireccion.Text="";
       // txtCodigo.Text="";
        txtNumero.Text="";
        txtPiso.Text="";
        txtManzana.Text="";
        txtLote.Text="";
        txtSector.Text="";
        txtEtapa.Text="";
        txtObservacion.Text="";
        txtNroSeguro.Text="";
        cboSexo.Text="";
        cboEstadoCivil.Text="";
        cboTipoDocumento.Text="";
        cboTipoTrabajo.Text="";
        seEdad.Value=0;
        sePeso.Value=0;
        seNuHijos.Value=0;
        cboTipoSangre.Text="";
        dtpfechaUlt_Odontolgo.Text="";
        dtpChequeoGeneral.Text="";
        cboAlergias.Text="";
        txtOtrasAlergias.Text="";
        cboEnfermedades.Text="";
        txtCorreo1.Text = "";
        txtCorreo2.Text = "";
        txtUrbanizacion.Text = "";
    }

    protected void dtpfechaNac_DateChanged(object sender, EventArgs e)
    {
        //seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;

        if (dtpfechaNac.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Nacimiento no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Nacimiento no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else
        {
            seEdad.Value = DateTime.Now.Year - dtpfechaNac.Date.Year;
        }
    }

    private bool validarInsercion()
    {
        bool Bool = true;

        if (txtApellidoPaterno.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Apellido Paterno debe ser ingresado", this.Page);
            lblMensaje.Text = "El Apellido Paterno debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtApellidoMaterno.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Apellido Materno debe ser ingresado", this.Page);
            lblMensaje.Text = "El Apellido Materno debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNombres.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Nombre debe ser ingresado", this.Page);
            lblMensaje.Text = "El Nombre debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpfechaNac.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Nacimiento debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Nacimiento debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoDocumento.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Documento debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Documento debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNroDocumento.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Número de Documento debe ser ingresado", this.Page);
            lblMensaje.Text = "La Número de Documento debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtTelefono.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Telefono debe ser ingresado", this.Page);
            lblMensaje.Text = "El Telefono debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtNroSeguro.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Número de Seguro debe ser ingresado", this.Page);
            lblMensaje.Text = "El Número de Seguro debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboSexo.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Sexo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Sexo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (txtCorreo1.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Correo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Correo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (sePeso.Text == "0")
        {
            Bool = false;
            //Util.showmsg("El Peso debe ser ingresado", this.Page);
            lblMensaje.Text = "El Peso debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboEstadoCivil.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Estado Civil debe ser ingresado", this.Page);
            lblMensaje.Text = "El Estado Civil debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (seNuHijos.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Número de Hijos debe ser ingresado", this.Page);
            lblMensaje.Text = "El Número de Hijos debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoSangre.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Sangre debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Sangre debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpfechaUlt_Odontolgo.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Visita al Odontologo debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Visita al Odontologo debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoGeneral.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo General debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo General debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoOculista.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Oculista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Oculista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (dtpChequeoNutricionista.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Nutricionista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Nutricionista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboAlergias.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Fecha de Última Chequeo Nutricionista debe ser ingresada", this.Page);
            lblMensaje.Text = "La Fecha de Última Chequeo Nutricionista debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboEnfermedades.Value == null)
        {
            Bool = false;
            //Util.showmsg("La Enfermedad no curable propia o de algún familiar debe ser ingresada", this.Page);
            lblMensaje.Text = "La Enfermedad no curable propia o de algún familiar debe ser ingresada";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
        else if (cboTipoTrabajo.Value == null)
        {
            Bool = false;
            //Util.showmsg("El Tipo de Trabajo debe ser ingresado", this.Page);
            lblMensaje.Text = "El Tipo de Trabajo debe ser ingresado";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }

        return Bool;
    }
    protected void dtpfechaUlt_Odontolgo_DateChanged(object sender, EventArgs e)
    {
        if (dtpfechaUlt_Odontolgo.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Última Visita a Odontólogo no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Última Visita a Odontólogo no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoGeneral_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoGeneral.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo General no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo General no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoOculista_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoOculista.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo Oculista no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo Oculista no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
    protected void dtpChequeoNutricionista_DateChanged(object sender, EventArgs e)
    {
        if (dtpChequeoNutricionista.Date > DateTime.Today)
        {
            //Util.showmsg("La Fecha de Último Chequeo Nutricionista no puede ser mayor que la Fecha de Hoy Día", this.Page);
            lblMensaje.Text = "La Fecha de Último Chequeo Nutricionista no puede ser mayor que la Fecha de Hoy Día";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensaje.Show();", true);
        }
    }
  

    /* CODIGO PARA REGISTRO DE HISTORIAL PERSONAL */


    private void Grabar(int idpaciente)
    {


        try
        {
            FacadeHistoriaPersonal = new FacadeRegistrarHistoriaPersonal();
            ATE_HISTORIA_PERSONAL l = new ATE_HISTORIA_PERSONAL();
            l.PAC_ID_PACIENTE = idpaciente;
            if (rbtCrecimiento.Items[0].Selected == true)
            {
                l.HISPER_FLAG_CRECIMIENTO = "N";
            }
            else if (rbtCrecimiento.Items[1].Selected == true)
            {
                l.HISPER_FLAG_CRECIMIENTO = "D";

            }
            else
            {

                l.HISPER_FLAG_CRECIMIENTO = "";
            }



            if (rdbvacuna.SelectedIndex == 0)
            {
                l.HISPER_FLAG_VACUNACIONES = "S";
            }
            else if (rdbvacuna.SelectedIndex == 1)
            {
                l.HISPER_FLAG_VACUNACIONES = "N";

            }
            else
            {
                l.HISPER_FLAG_VACUNACIONES = "";

            }



            l.HISPER_ESPECIFICAR_VACUNACIONES = txtEspecificarVacunacion.Text;


            if (rdbpersonalidad.Items[0].Selected == true)
            {
                l.HISPER_FLAG_PERSONALIDAD = "A";
            }
            else if (rdbpersonalidad.Items[1].Selected == true)
            {
                l.HISPER_FLAG_PERSONALIDAD = "I";

            }
            else
            {

                l.HISPER_FLAG_PERSONALIDAD = "";
            }

            if (rdbHistorialSexo.Items[0].Selected == true)
            {
                l.HISPER_FLAG_HISTORIA_SEXUAL = "E";
            }
            else if (rdbHistorialSexo.Items[1].Selected == true)
            {
                l.HISPER_FLAG_HISTORIA_SEXUAL = "H";

            }
            else
            {

                l.HISPER_FLAG_HISTORIA_SEXUAL = "";
            }


            l.HISPER_ENFERMEDADES_MEDICAS = txtDescripcionMedicas.Text;
            l.HISPER_ENFERMEDADES_QUIRURGICAS = txtDescipcionQuirurgicas.Text;
            l.HISPER_COMPLICACIONES_OPERACIONES_PREVIAS = txtComplicaciones.Text;

            if (rdbalergia.Items[0].Selected == true)
            {
                l.HISPER_FLAG_ALERGIAS = "S";
            }
            else if (rdbalergia.Items[1].Selected == true)
            {
                l.HISPER_FLAG_ALERGIAS = "N";

            }
            else
            {
                l.HISPER_FLAG_ALERGIAS = "N";

            }

            l.HISPER_ESPECIFICAR_ALERGIAS = txtEspecificarAlergia.Text;


            if (rdbTransfusiones.Items[0].Selected == true)
            {
                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "S";
            }
            else if (rdbTransfusiones.Items[1].Selected == true)
            {
                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "N";

            }
            else
            {

                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "";
            }
            l.HISPER_COMPLICACIONES_TRANSFUSIONES_PREVIAS = txtComplicacionesTransfucionesPrevias.Text;


            if (FacadeHistoriaPersonal.Insertar(l))
            {
                operacion = "M";
                lblMensaje.Text = "Se grabó correctamente";
                pcMensaje.ShowOnPageLoad = true;

            }
            else
            {

                lblMensaje.Text = "Error";
                pcMensaje.ShowOnPageLoad = true;
            }
        }
        catch (Exception ex)
        {
            lblMensaje.Text = "Error: " + ex.Message;
            pcMensaje.ShowOnPageLoad = true;

        }





    }


    private void Modificar()
    {

        try
        {
            FacadeHistoriaPersonal = new FacadeRegistrarHistoriaPersonal();

            ATE_HISTORIA_PERSONAL l = new ATE_HISTORIA_PERSONAL();
            l.PAC_ID_PACIENTE = Convert.ToInt32(Session["IDPaciente"]);
            if (rbtCrecimiento.Items[0].Selected == true)
            {
                l.HISPER_FLAG_CRECIMIENTO = "N";
            }
            else if (rbtCrecimiento.Items[1].Selected == true)
            {
                l.HISPER_FLAG_CRECIMIENTO = "D";

            }
            else
            {

                l.HISPER_FLAG_CRECIMIENTO = "";
            }



            if (rdbvacuna.SelectedIndex == 0)
            {
                l.HISPER_FLAG_VACUNACIONES = "S";
            }
            else if (rdbvacuna.SelectedIndex == 1)
            {
                l.HISPER_FLAG_VACUNACIONES = "N";

            }
            else
            {
                l.HISPER_FLAG_VACUNACIONES = "";

            }



            l.HISPER_ESPECIFICAR_VACUNACIONES = txtEspecificarVacunacion.Text;


            if (rdbpersonalidad.Items[0].Selected == true)
            {
                l.HISPER_FLAG_PERSONALIDAD = "A";
            }
            else if (rdbpersonalidad.Items[1].Selected == true)
            {
                l.HISPER_FLAG_PERSONALIDAD = "I";

            }
            else
            {

                l.HISPER_FLAG_PERSONALIDAD = "";
            }

            if (rdbHistorialSexo.Items[0].Selected == true)
            {
                l.HISPER_FLAG_HISTORIA_SEXUAL = "E";
            }
            else if (rdbHistorialSexo.Items[1].Selected == true)
            {
                l.HISPER_FLAG_HISTORIA_SEXUAL = "H";

            }
            else
            {

                l.HISPER_FLAG_HISTORIA_SEXUAL = "";
            }


            l.HISPER_ENFERMEDADES_MEDICAS = txtDescripcionMedicas.Text;
            l.HISPER_ENFERMEDADES_QUIRURGICAS = txtDescipcionQuirurgicas.Text;
            l.HISPER_COMPLICACIONES_OPERACIONES_PREVIAS = txtComplicaciones.Text;

            if (rdbalergia.Items[0].Selected == true)
            {
                l.HISPER_FLAG_ALERGIAS = "S";
            }
            else if (rdbalergia.Items[1].Selected == true)
            {
                l.HISPER_FLAG_ALERGIAS = "N";

            }
            else
            {
                l.HISPER_FLAG_ALERGIAS = "N";

            }

            l.HISPER_ESPECIFICAR_ALERGIAS = txtEspecificarAlergia.Text;


            if (rdbTransfusiones.Items[0].Selected == true)
            {
                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "S";
            }
            else if (rdbTransfusiones.Items[1].Selected == true)
            {
                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "N";

            }
            else
            {

                l.HISPER_FLAG_TRANSFUSIONES_PREVIAS = "";
            }
            l.HISPER_COMPLICACIONES_TRANSFUSIONES_PREVIAS = txtComplicacionesTransfucionesPrevias.Text;

            if (FacadeHistoriaPersonal.Modicar(l))
            {

                lblMensaje.Text = "Se actualizo correctamente";
                pcMensaje.ShowOnPageLoad = true;

            }
            else
            {
                lblMensaje.Text = "Error";
                pcMensaje.ShowOnPageLoad = true;
            }
        }
        catch (Exception ex)
        {

            lblMensaje.Text = "Error: " + ex.Message;
            pcMensaje.ShowOnPageLoad = true;
        }



    }


    private void ObtenerDatos()
    {


        try
        {
            FacadeHistoriaPersonal = new FacadeRegistrarHistoriaPersonal();
            List<ATE_HISTORIA_PERSONAL> list = FacadeHistoriaPersonal.getHistoria(Convert.ToInt32(Session["IDPaciente"]));

            if (list.Count() == 0)
            {
                operacion = "C";
                return;
            }

            if (list[0].HISPER_FLAG_CRECIMIENTO == "N")
            {
                rbtCrecimiento.Items[0].Selected = true;
            }
            else if (list[0].HISPER_FLAG_CRECIMIENTO == "D")
            {
                rbtCrecimiento.Items[1].Selected = true;
            }

            if (list[0].HISPER_FLAG_VACUNACIONES == "S")
            {
                rdbvacuna.SelectedIndex = 0;
            }
            else if (list[0].HISPER_FLAG_VACUNACIONES == "N")
            {
                rdbvacuna.SelectedIndex = 1;

            }

            txtEspecificarVacunacion.Text = list[0].HISPER_ESPECIFICAR_VACUNACIONES;

            if (list[0].HISPER_FLAG_PERSONALIDAD == "A")
            {
                rdbpersonalidad.Items[0].Selected = true;
            }
            else if (list[0].HISPER_FLAG_PERSONALIDAD == "I")
            {
                rdbpersonalidad.Items[1].Selected = true;
            }

            if (list[0].HISPER_FLAG_HISTORIA_SEXUAL == "E")
            {
                rdbHistorialSexo.Items[0].Selected = true;
            }
            else if (list[0].HISPER_FLAG_HISTORIA_SEXUAL == "H")
            {
                rdbHistorialSexo.Items[1].Selected = true;
            }


            txtDescripcionMedicas.Text = list[0].HISPER_ENFERMEDADES_MEDICAS;
            txtDescipcionQuirurgicas.Text = list[0].HISPER_ENFERMEDADES_QUIRURGICAS;
            txtComplicaciones.Text = list[0].HISPER_COMPLICACIONES_OPERACIONES_PREVIAS;
            if (list[0].HISPER_FLAG_ALERGIAS == "S")
            {
                rdbalergia.Items[0].Selected = true;
            }
            else if (list[0].HISPER_FLAG_ALERGIAS == "N")
            {
                rdbalergia.Items[1].Selected = true;
            }

            txtEspecificarAlergia.Text = list[0].HISPER_ESPECIFICAR_ALERGIAS;

            if (list[0].HISPER_FLAG_TRANSFUSIONES_PREVIAS == "S")
            {
                rdbTransfusiones.Items[0].Selected = true;
            }
            else if (list[0].HISPER_FLAG_TRANSFUSIONES_PREVIAS == "N")
            {
                rdbTransfusiones.Items[1].Selected = true;
            }


            txtComplicacionesTransfucionesPrevias.Text = list[0].HISPER_COMPLICACIONES_TRANSFUSIONES_PREVIAS;
        }
        catch (Exception ex)
        {

            lblMensaje.Text = "ERROR: " + ex.Message;
            pcMensaje.ShowOnPageLoad = true;
        }



    }


    //protected void btnAceptar_Click(object sender, EventArgs e)
    //{
    //    if (Session["Ate_Operacion"].ToString() == "P")
    //    {
    //        return;
    //    }
    //    if (operacion == "C")
    //    {
    //        this.Grabar();

    //    }
    //    else if (operacion == "M")
    //    {

    //        this.Modificar();
    //    }
    //}

    // Codigo para Historial Social

    private void insertarHistoriaSocial(int codpac)
    {
        ATE_HISTORIA_SOCIAL obj = new ATE_HISTORIA_SOCIAL();
        BL_RegistrarHistoriaSocial = new FacadeRegistrarAtencion();
        try
        {
            obj.PAC_ID_PACIENTE = codpac;
            //obj.ATE_ID_ATENCION = idPruebaAtencion;
            obj.HISOC_FLAG_DINAMICA_FAMILIAR = (string)rdbdinamica.Value.ToString().Substring(0, 1);
            obj.HISOC_ACTIVIDAD_LABORAL = txtActividadLab.Text;
            obj.HISOC_ENFERMEDADES_FAMILIA = txtEnfermedad.Text;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdbestrsoc.Value.ToString().Substring(0, 1);
            obj.HISOC_RIESGO_ENFERMEDADES = txtRiesgoEnf.Text;
            obj.HISOC_FLAG_ANTECEDENTES_SANGRADO = (string)rdbantsang.Value.ToString().Substring(0, 1);
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdbestrsoc.Value.ToString().Substring(0, 1);
            if (BL_RegistrarHistoriaSocial.InsertarHistoriaSocial(obj))
            {
                operacion = "M";
                this.getObtenerHistoriaSocial((Int32)Session["IDPaciente"]);
                MostrarComentario("Se registró correctamente el Historia Social.");
            }
            else
            {
                MostrarComentario("Error al registrar Historia Social.");
            }

        }
        catch (Exception ex)
        {
            titulo = "Error al insertar Registro - Historia Social!";
            msg = ex.Message;
            MostrarComentario(msg, titulo);

        }
    }

    private void getObtenerHistoriaSocial(int idHistoriaSocial)
    {
        try
        {
            BL_RegistrarHistoriaSocial = new FacadeRegistrarAtencion();
            List<ATE_HISTORIA_SOCIAL> lista = new List<ATE_HISTORIA_SOCIAL>();
            lista = BL_RegistrarHistoriaSocial.GetHistoriaSocial(idHistoriaSocial);

            if (lista.Count() == 0)
            {
                operacion = "C";
                return;
            }

            Session["id_HistoriaSocial"] = lista[0].HISOC_ID_HISTORIA_SOCIAL;
            txtActividadLab.Text = lista[0].HISOC_ACTIVIDAD_LABORAL;
            txtEnfermedad.Text = lista[0].HISOC_ENFERMEDADES_FAMILIA;
            txtRiesgoEnf.Text = lista[0].HISOC_RIESGO_ENFERMEDADES;
            if (lista[0].HISOC_FLAG_ANTECEDENTES_SANGRADO == "S")
            {
                rdbantsang.SelectedIndex = 0;
            }
            else
            {
                rdbantsang.SelectedIndex = 1;
            }
            if (lista[0].HISOC_FLAG_DINAMICA_FAMILIAR == "A")
            {
                rdbdinamica.SelectedIndex = 0;
            }
            else { rdbdinamica.SelectedIndex = 1; }
            if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "A")
            {
                rdbestrsoc.SelectedIndex = 0;
            }
            else if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "M")
            {
                rdbestrsoc.SelectedIndex =1;

            }
            else if (lista[0].HISOC_FLAG_ESTRUCTURA_SOCIAL == "B") { rdbestrsoc.SelectedIndex = 2; }
            
        }
        catch (Exception ex)
        {
            titulo = "Error al listar Historia Social.";
            msg = ex.Message;
            MostrarComentario(msg, titulo);
        }
    }
    private void cancelar()
    {
        rdbantsang.SelectedIndex = 0;
        rdbdinamica.SelectedIndex = 0;
        rdbestrsoc.SelectedIndex = 0;
        txtActividadLab.Text = string.Empty;
        txtEnfermedad.Text = string.Empty;
        txtRiesgoEnf.Text = string.Empty;
    }

    private void MostrarComentario(String msg, String titulo)
    {
        abrirAlerta(msg, titulo);
    }

    private void MostrarComentario(String msg)
    {
        abrirAlerta(msg, "Mensaje");
    }

    protected internal void abrirAlerta(String msg, String titulo)
    {
        //pcMensajeHS.HeaderText = titulo;
        //lblMensaje.Text = msg;
        //ScriptManager.RegisterStartupScript(this, typeof(Page), "scriptkey", "pcMensajeHS.Show();", true);
    }

    private void ModificarHistoriaSocial()
    {
        ATE_HISTORIA_SOCIAL obj = new ATE_HISTORIA_SOCIAL();

        try
        {
            BL_RegistrarHistoriaSocial = new FacadeRegistrarAtencion();
            obj.HISOC_ID_HISTORIA_SOCIAL = (Int32)Session["id_HistoriaSocial"];
            obj.PAC_ID_PACIENTE = (Int32)Session["IDPaciente"];
            //obj.ATE_ID_ATENCION = idPruebaAtencion;
            obj.HISOC_FLAG_DINAMICA_FAMILIAR = (string)rdbdinamica.Value.ToString().Substring(0,1);
            obj.HISOC_ACTIVIDAD_LABORAL = txtActividadLab.Text;
            obj.HISOC_ENFERMEDADES_FAMILIA = txtEnfermedad.Text;
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdbestrsoc.Value.ToString().Substring(0, 1);
            obj.HISOC_RIESGO_ENFERMEDADES = txtRiesgoEnf.Text;
            obj.HISOC_FLAG_ANTECEDENTES_SANGRADO = (string)rdbantsang.Value.ToString().Substring(0, 1);
            obj.HISOC_FLAG_ESTRUCTURA_SOCIAL = (string)rdbestrsoc.Value.ToString().Substring(0, 1);
            if (BL_RegistrarHistoriaSocial.ModificarHistoriaSocial(obj))
            {
                MostrarComentario("Se actualizo correctamente la Historia Social.");
            }
            else
            {
                MostrarComentario("Error al actualizar Historia Social.");
            }

        }
        catch (Exception ex)
        {
            titulo = "Error al insertar Registro Historia Social!";
            msg = ex.Message;
            MostrarComentario(msg, titulo);

        }
    }
}

